/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import controladores.GestionServicioAdicionalCont;
import modelos.pojos.ServiciosAdicionales;
import tools.Utilidad;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.datatable.DataTable;

/**
 *
 * @author ricardo
 */
@ManagedBean
@ViewScoped
public class ServicioAdicional implements Serializable{

    private ServiciosAdicionales servicio;
    
    private DataTable tablaServicios;
    private Boolean noPermitirEdicion = true;
    
    /** Creates a new instance of ServicioAdicional */
    public ServicioAdicional() {
        servicio = new ServiciosAdicionales();
    }

    public ServiciosAdicionales getServicio() {
        return servicio;
    }

    public void setServicio(ServiciosAdicionales servicio) {
        this.servicio = servicio;
    }

    public Boolean getNoPermitirEdicion() {
        return noPermitirEdicion;
    }

    public void setNoPermitirEdicion(Boolean noPermitirEdicion) {
        this.noPermitirEdicion = noPermitirEdicion;
    }

    public DataTable getTablaServicios() {
        return tablaServicios;
    }

    public void setTablaServicios(DataTable tablaServicios) {
        this.tablaServicios = tablaServicios;
    }
        
    public void desbloquear(){
        this.noPermitirEdicion = false;
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Campos Habilitados", "Ahora puede modificar la información"));
    }
    
    public List<ServiciosAdicionales> listarServicios(){
        return GestionServicioAdicionalCont.listarServiciosAdicionales("");
    }
    
    public void crearServicio(){
        String mensaje = GestionServicioAdicionalCont.crearServicioAdicional(servicio);
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Servicio creada:", mensaje));
    }
    
    public void consultarServicio(){
        modelos.pojos.ServiciosAdicionales seleccion = (modelos.pojos.ServiciosAdicionales) tablaServicios.getRowData();
        servicio = GestionServicioAdicionalCont.buscarServicioAdicional(seleccion.getCodigo());
    }
    
    public void actualizarServicio(){
        String mensaje = GestionServicioAdicionalCont.actualizarInformacion(servicio);
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Servicio creada:", mensaje));
        noPermitirEdicion = true;
    }
    
    public void desactivarServicio(){
        modelos.pojos.ServiciosAdicionales seleccion = (modelos.pojos.ServiciosAdicionales) tablaServicios.getRowData();
        servicio = GestionServicioAdicionalCont.buscarServicioAdicional(seleccion.getCodigo());
        servicio.setEstado(Utilidad.invertirEstado(servicio.getEstado()));
        GestionServicioAdicionalCont.actualizarInformacion(servicio);
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Éxito en la operación"));
    }
    
}
